package com.gjzhao.fmmall.vo.easyExcel;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.format.NumberFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.gjzhao.fmmall.excelConverter.GenderConverter;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @Description: 购物会员
 *
 * 注解使用说明：
 *  1.@ExcelProperty 用于设置表头名称，value属性设置表头名称，converter设置转换器
 *  2.@ColumnWidth 用于设置表格列宽度
 *  3.@DateTimeFormat 用于设置日期格式转换（注意不要引错包了）
 *  4.GenderConverter 为自定义类，用于枚举类型的类型转换
 *  5.@ExcelIgnore 用户忽略需要导出的字段
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class Member {

    @ExcelProperty(value = "ID")
    @ColumnWidth(10)
    private Long id;

    @ExcelProperty("用户名")
    @ColumnWidth(20)
    private String username;

    @ExcelIgnore
    private String password;

    @ExcelProperty("昵称")
    @ColumnWidth(20)
    private String nickname;

    @ExcelProperty("出生日期")
    @ColumnWidth(20)
    @DateTimeFormat("yyyy-MM-dd")
    private Date birthday;

    @ExcelProperty("手机号")
    @ColumnWidth(20)
    private String phone;

    @ExcelIgnore
    private String icon;

    @ExcelProperty(value = "性别", converter = GenderConverter.class)
    @ColumnWidth(10)
    private Integer gender;

    @ExcelProperty("积分增长率")
    @ColumnWidth(20)
    @NumberFormat("#.##%")
    private BigDecimal integralGrowthRate;

}
